<?php

/**
 * proizvod actions.
 *
 * @package    marketing
 * @subpackage proizvod
 * @author     Your name here
 */
class proizvodActions extends sfActions {

    public function executeIndex(sfWebRequest $request) {
        $filter = array(
            "naziv" => '',
            "nabavna_cena_od" => '',
            "nabavna_cena_do" => '',
            "kategorija_id" => '',
        );

        if ($request->hasParameter('proizvod')) {
            $this->getUser()->setAttribute('proizvod', $request->getParameter('proizvod'));
            $this->redirect('proizvod/index');
        }
        if ($this->getUser()->hasAttribute('proizvod')) {
            $filter = $this->getUser()->getAttribute('proizvod', $request->getParameter('proizvod'));
        }
        $this->filter = new ProizvodFormFilter();
        $this->filter->setDefaults($filter);
         $this->filter->getWidgetSchema()->setLabel('kategorija_id', 'kategorija');
        $c = new Criteria();
        $c1 = null;
        $c2 = null;
        if ($filter['naziv'] != '')
            $c->add(ProizvodPeer::NAZIV, "%" . $filter['naziv'] . "%", Criteria::LIKE);
        if ($filter['nabavna_cena_od'] != '')
            $c1 = $c->getNewCriterion(ProizvodPeer::NABAVNA_CENA, $filter['nabavna_cena_od'], Criteria::GREATER_EQUAL);
        if ($filter['nabavna_cena_do'] != '')
            $c2 = $c->getNewCriterion(ProizvodPeer::NABAVNA_CENA, $filter['nabavna_cena_do'], Criteria::LESS_EQUAL);
        if (isset($filter['kategorija_id']) && $filter['kategorija_id'] != '')
            $c->add(ProizvodPeer::KATEGORIJA_ID, $filter['kategorija_id'], Criteria::EQUAL);


        if ($c1 && $c2) {
            $c1->addAnd($c2);
            $c->add($c1);
        } else if ($c1)
            $c->add($c1);
        else if ($c2)
            $c->add($c2);

            $this->pager=new sfPropelPager('Proizvod', 3);
            $this->pager->setMaxPerPage(3);
            $this->pager->setCriteria($c);
            $this->pager->setPeerMethod('doSelectJoinAll');
            $this->pager->setPage($request->hasParameter('page')?$request->getParameter('page'):1);
            $this->pager->init();
            $this->proizvod_list = $this->pager->getResults();
        
    }

    public function executeDetails(sfWebRequest $request) {
        $this->proizvod = ProizvodPeer::retrieveByPK($request->getParameter("id"));
        $this->form = new DodavanjeForm();
        $this->form->updateValidator($this->proizvod->getDostupnaKolicina());
    }

    public function executeAdd(sfWebRequest $request) {
        $id = $request->getParameter('id');
        $this->setTemplate('details');
        $dodavanje = $request->getParameter('dodavanje');
        $broj = $dodavanje['broj'];
        $this->proizvod = ProizvodPeer::retrieveByPK($id);
        $this->form = new DodavanjeForm();
        $this->form->updateValidator($this->proizvod->getDostupnaKolicina());
        $this->form->bind($request->getParameter('dodavanje'));
        if ($this->form->isValid()) {
            $korpa = $this->getUser()->hasAttribute('korpa') ? $this->getUser()->getAttribute('korpa') : array();

            if (isset($korpa[$id]))
                $korpa[$id]+=$broj;
            else
                $korpa[$id] = (int) $broj;
            $this->getUser()->setAttribute('korpa', $korpa);

            $this->redirect('proizvod/index');
        }
    }

}
